FrameLib  2.0
DSP processing with frames of arbitrary timing and length
FrameLib_Types.h
Go to the documentation of this file.
1 
2 #ifndef FRAMELIB_TYPES_H
3 #define FRAMELIB_TYPES_H
4 
11 // FrameLib_FixedPoint
12 
13 #include "FrameLib_FixedPoint.h"
14 
15 // Standard integer types
16 
17 #include <stdint.h>
18 
19 // STL includes
20 
21 #include <memory>
22 #include <vector>
23 
24 // Raw Bytes
25 
26 typedef unsigned char Byte;
27 typedef unsigned char *BytePointer;
28 
29 
38 struct FrameLib_TimeFormat : public FL_FP
39 {
41  FrameLib_TimeFormat(const FL_FP& a) : FL_FP(a) {}
42  FrameLib_TimeFormat(uint64_t a, uint64_t b) : FL_FP(a, b) {}
43  FrameLib_TimeFormat(const double& val) : FL_FP(val) {}
44 
45  static FrameLib_TimeFormat smallest() { return FL_FP(0,1); }
46  static FrameLib_TimeFormat largest() { return FL_FP(std::numeric_limits<uint64_t>::max(), std::numeric_limits<uint64_t>::max()); }
47 
48  bool greaterThanZero() { return intVal() | fracVal(); }
49 };
50 
51 // Basic Enum Types
52 
57 
70 {
73  virtual ~FrameLib_Proxy() {}
74 };
75 
88 template<class T>
89 struct FrameLib_OwnedList : public std::vector<std::unique_ptr<T>>
90 {
96  void add(T *object)
97  {
98  std::vector<std::unique_ptr<T>>::push_back(std::unique_ptr<T>(object));
99  }
100 };
101 
102 #endif
ObjectType
Definition: FrameLib_Types.h:53
Definition: FrameLib_Types.h:53
DataType
Definition: FrameLib_Types.h:55
Definition: FrameLib_Types.h:54
Definition: FrameLib_Types.h:56
Definition: FrameLib_Types.h:56
a virtual struct allowing for extensible communication to/from the host environment.
Definition: FrameLib_Types.h:69
FrameLib_TimeFormat(const double &val)
Definition: FrameLib_Types.h:43
Definition: FrameLib_Types.h:55
Definition: FrameLib_Types.h:56
uint64_t fracVal() const
Definition: FrameLib_FixedPoint.h:81
void add(T *object)
Definition: FrameLib_Types.h:96
virtual ~FrameLib_Proxy()
Definition: FrameLib_Types.h:73
unsigned char * BytePointer
Definition: FrameLib_Types.h:27
Definition: FrameLib_Types.h:56
a type for representing time in fixed-point high-precision for scheduling purposes.
Definition: FrameLib_Types.h:38
high-precision unsigned fixed-point numerical format.
Definition: FrameLib_FixedPoint.h:66
bool greaterThanZero()
Definition: FrameLib_Types.h:48
FrameLib_TimeFormat()
Definition: FrameLib_Types.h:40
static FrameLib_TimeFormat largest()
Definition: FrameLib_Types.h:46
uint64_t intVal() const
Definition: FrameLib_FixedPoint.h:80
a convenience wrapper for dealing with a vector of objects owned by pointer.
Definition: FrameLib_Types.h:89
unsigned char Byte
Definition: FrameLib_Types.h:26
Definition: FrameLib_Types.h:55
Definition: FrameLib_Types.h:54
FrameLib_TimeFormat(uint64_t a, uint64_t b)
Definition: FrameLib_Types.h:42
Definition: FrameLib_Types.h:54
FrameLib_TimeFormat(const FL_FP &a)
Definition: FrameLib_Types.h:41
Definition: FrameLib_Types.h:53
ConnectionResult
Definition: FrameLib_Types.h:56
FrameType
Definition: FrameLib_Types.h:54
static FrameLib_TimeFormat smallest()
Definition: FrameLib_Types.h:45
Definition: FrameLib_Types.h:53
Definition: FrameLib_Types.h:56
FL_FP()
Definition: FrameLib_FixedPoint.h:73
Definition: FrameLib_Types.h:56